#ifndef COLLIDABLE_OBJECT_H
#define COLLIDABLE_OBJECT_H

#include "AABB.h"
#include "PhysicsObject.h"

/*
CollidableObject to be derived by other classes, registers object with TheCollidableManager which is 
used to keep track of all collidable objects (used for ObstacleAvoidance).
pointer to PhysicsObject passed in to update the CollidableObject's AABB
the dimensions of the AABB are also passed in
*/

namespace Engine
{
	class CollidableObject : public PhysicsObject
	{
		protected:
			AABB m_aabb;

		public:
			virtual ~CollidableObject() = 0;

			const AABB& GetAABB() const {return m_aabb;}
			void SetAABB(const AABB& b){m_aabb = b;}

			//inherited from GameObject
			virtual void Initialize() override;
			virtual void Release() override;
	};
}

#endif